/*
 * 
 * Libman
 * 
 * Daniel Kaufmann, Martin Lang, Simon Moosbrugger,
 * Stefan Mayer, Stephan Halbeisen
 * 
 */
package model;

import java.util.Set;

/**
 * The Class Medium.
 */
public class Medium implements java.io.Serializable {

	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 1L;
	
	/** The id. */
	private Integer id;
	
	/** The title. */
	private String title;
	
	/** The description. */
	private String description;
	
	/** The year. */
	private int year;
	
	/** The reservations. */
	private Set<Reservation> reservations;
	
	/** The quantity. */
	private int quantity;
	
	/** The exemplars. */
	private Set<Exemplar> exemplars;
	
	/** The keywords. */
	private Set<Keyword> keywords;
	
	/** The language. */
	private Language language;
	
	/** The department. */
	private Department department;

	/**
	 * Instantiates a new medium.
	 */
	public Medium() {
	}

	/**
	 * Instantiates a new medium.
	 * 
	 * @param titel
	 *            the titel
	 * @param beschreibung
	 *            the beschreibung
	 * @param jahr
	 *            the jahr
	 * @param department
	 *            the department
	 */
	public Medium(String titel, String beschreibung, int jahr,
			Department department) {
		this.title = titel;
		this.description = beschreibung;
		this.setYear(jahr);
		this.department = department;
	}

	/**
	 * Instantiates a new medium.
	 * 
	 * @param titel
	 *            the titel
	 * @param beschreibung
	 *            the beschreibung
	 * @param jahr
	 *            the jahr
	 * @param language
	 *            the language
	 * @param reservations
	 *            the reservations
	 * @param exemplars
	 *            the exemplars
	 * @param keywords
	 *            the keywords
	 * @param department
	 *            the department
	 */
	public Medium(String titel, String beschreibung, int jahr,
			Language language, Set<Reservation> reservations,
			Set<Exemplar> exemplars, Set<Keyword> keywords,
			Department department) {
		this.title = titel;
		this.description = beschreibung;
		this.setYear(jahr);
		this.reservations = reservations;
		this.keywords = keywords;
		this.department = department;
		this.language = language;
	}

	/**
	 * Gets the title.
	 * 
	 * @return the title
	 */
	public String getTitle() {
		return this.title;
	}

	/**
	 * Sets the title.
	 * 
	 * @param titel
	 *            the new title
	 */
	public void setTitle(String titel) {
		this.title = titel;
	}

	/**
	 * Gets the description.
	 * 
	 * @return the description
	 */
	public String getDescription() {
		return this.description;
	}

	/**
	 * Sets the description.
	 * 
	 * @param description
	 *            the new description
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * Gets the reservations.
	 * 
	 * @return the reservations
	 */
	public Set<Reservation> getReservations() {
		return this.reservations;
	}

	/**
	 * Sets the reservations.
	 * 
	 * @param reservations
	 *            the new reservations
	 */
	public void setReservations(Set<Reservation> reservations) {
		this.reservations = reservations;
	}

	/**
	 * Gets the id.
	 * 
	 * @return the id
	 */
	public Integer getId() {
		return id;
	}

	/**
	 * Sets the id.
	 * 
	 * @param id
	 *            the new id
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * Gets the year.
	 * 
	 * @return the year
	 */
	public int getYear() {
		return year;
	}

	/**
	 * Sets the year.
	 * 
	 * @param year
	 *            the new year
	 */
	public void setYear(int year) {
		this.year = year;
	}

	/**
	 * Gets the quantity.
	 * 
	 * @return the quantity
	 */
	public int getQuantity() {
		return quantity;
	}

	/**
	 * Sets the quantity.
	 * 
	 * @param quantity
	 *            the new quantity
	 */
	public void setQuantity(int quantity) {
		this.quantity = quantity;
	}

	/**
	 * Sets the exemplars.
	 * 
	 * @param exemplars
	 *            the new exemplars
	 */
	public void setExemplars(Set<Exemplar> exemplars) {
		this.exemplars = exemplars;
	}

	/**
	 * Gets the exemplars.
	 * 
	 * @return the exemplars
	 */
	public Set<Exemplar> getExemplars() {
		return exemplars;
	}

	/**
	 * Sets the keywords.
	 * 
	 * @param keywords
	 *            the new keywords
	 */
	public void setKeywords(Set<Keyword> keywords) {
		this.keywords = keywords;
	}

	/**
	 * Gets the keywords.
	 * 
	 * @return the keywords
	 */
	public Set<Keyword> getKeywords() {
		return keywords;
	}

	/**
	 * Sets the language.
	 * 
	 * @param language
	 *            the new language
	 */
	public void setLanguage(Language language) {
		this.language = language;
	}

	/**
	 * Gets the language.
	 * 
	 * @return the language
	 */
	public Language getLanguage() {
		return language;
	}

	/**
	 * Sets the department.
	 * 
	 * @param department
	 *            the new department
	 */
	public void setDepartment(Department department) {
		this.department = department;
	}

	/**
	 * Gets the department.
	 * 
	 * @return the department
	 */
	public Department getDepartment() {
		return department;
	}
}
